package Command;

public class CommandPatternDemo {

    public static void main(String[] args) {

        // (stock 请求 )先创建基本 货物, 才有 买卖
        Stock stock = new Stock();

        // ( 实体命令类 ) 执行实际的命令处理
        BuyStock buyStock = new BuyStock(stock);
        SellStock sellStock = new SellStock(stock);


        // broker 对象, 使用 命令模式. 基于命令的类型( 此处 buy~ 和 sell~ 就是不同类型的命令对象 ).
        Broker broker = new Broker();
        broker.takeOrder(buyStock);
        broker.takeOrder(sellStock);

        broker.placeOrders();
        /*
            orders.execute() , 实际就是 buyStock.execute() 和 sellStock.execute() .
            但 两个实体命令类 buyStock(), sellStock() 内部 却是基于 通一个stock(请求对象)的

         */
    }
}
